using System;
using Phoenix.Frames;
using Phoenix.Framework;

namespace Phoenix.Tests.Navigation
{
    public class TestContentFrame : IContentFrame
    {
        public void Dispose()
        {
            
        }

        public string Name
        {
            get { return "Test"; }
        }

        public NavigationRequest CurrentRequest
        {
            get { return null; }
        }

        public void NavigateTo(NavigationRequest navigationRequest)
        {
        }

        public void BeginOperation(InvokeActionRequest invokeRequest)
        {
        }

        public void EndOperation(InvokeActionRequest invokeRequest)
        {
        }

        public void RegisterChild(IContentFrame targetFrame)
        {
        }

        public void DeactivateCurrentRequest()
        {
        }

        public void ActivateCurrentRequest()
        {
            
        }

        public void InitialiseHost(IPhoenixHost host)
        {
            
        }

        public void InvalidateChildren()
        {
            
        }

        public ChildFrameCollection ChildFrames
        {
            get { return null; }
        }

        public IContentFrame ParentFrame
        {
            get { return null; }
        }

        public void SetParent(IContentFrame parentFrame)
        {
            
        }

        public event NavigationCompleteEvent NavigationComplete;
        public event EventHandler ForegroundOperationStarted;

        public void OnForegroundOperationStarted(EventArgs e)
        {
            EventHandler handler = ForegroundOperationStarted;
            if (handler != null) handler(this, e);
        }

        public event EventHandler ForegroundOperationComplete;

        public void CurrentRequestClosing(RequestClosingEventArgs eventArgs)
        {
            
        }

        public void OnForegroundOperationComplete(EventArgs e)
        {
            EventHandler handler = ForegroundOperationComplete;
            if (handler != null) handler(this, e);
        }

        public void OnNavigationComplete(NavigationCompleteEventArgs args)
        {
            NavigationCompleteEvent handler = NavigationComplete;
            if (handler != null) handler(this, args);
        }
    }
}